#
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#

#########################################################################################
# This is the messages.properties file
#########################################################################################

# Menu items
dashboard.upload.caption = Upload
dashboard.upload.caption-long = Upload Management
dashboard.tenantconfig.caption = System Config
dashboard.tenantconfig.caption-long = System Configuration
dashboard.distributions.caption = Distributions
dashboard.distributions.caption-long = Distributions Management
dashboard.filters.caption = Target Filters
dashboard.filters.caption-long = Target Filter Management
dashboard.deployment.caption = Deployment
dashboard.deployment.caption-long = Deployment Management
dashboard.rollouts.caption = Rollout
dashboard.rollouts.caption-long = Rollout Management

# Button names prefix with - button
button.save = Save
button.delete = Delete
button.delete.all = Delete All
button.assign.all = Save Assign
button.actions = You have actions
button.no.actions = No actions
button.ok = OK
button.cancel = Cancel
button.next = Next
button.confirm = Confirm
button.upload.file = Upload File
button.no.auto.assignment = none
button.auto.assignment.desc = Select auto assign distribution set
button.approve = Approve
button.deny = Deny
button.apply = Apply
bulkupload.wrong.file.format = Please upload csv file.
bulkupload.ds.name = DS Name
button.discard=Discard
notification.unread.button.title=Notifications
notification.unread.button.description=Notifications ({0} unread)
metadata.link.desc=View {0} Metadata details

# Headers prefix with - header
header.target.table=Targets
header.dist.table=Distributions
header.filter.tag=Filter by Tag
header.target.filter.tag=Filters
header.first.assignment.table = Targets
header.second.assignment.table = Distributions
header.dist.first.assignment.table = Distributions
header.dist.second.assignment.table = Software Modules
header.third.assignment.table = Discard
header.one.deletedist.table = Distribution Name
header.second.deletedist.table = Discard Changes
header.first.deletetarget.table = Target Name
header.second.deletetarget.table = Discard Changes
header.first.deleteswmodule.table = Delete software
header.first.delete.dist.type.table = DistributionSetType
header.second.delete.dist.type.table = Discard
header.first.delete.swmodule.type.table = Software Module Type
header.second.delete.swmodule.type.table = Discard
header.dist.twintable.selected=Selected
header.dist.twintable.available=Available
header.dt.twintable.available=Distribution set types
header.dt.twintable.selected=Compatible distribution set types
header.target.installed = Installed
header.target.assigned = Assigned
header.type=Type
header.migrations.step=IsRequiredMigrationStep
header.action=Actions
header.action.run=Run
header.action.approve=Approve
header.action.pause=Pause
header.action.update=Edit
header.action.copy=Copy
header.action.download=Download
header.action.delete=Delete
header.status=Status
header.status.code=Status Code

# event container
event.notifcation.target.created = 1 target created
event.notifcation.target.deleted = 1 target deleted
event.notifcation.targets.created = {0} targets created
event.notifcation.targets.deleted = {0} targets deleted
event.notifcation.distributionset.created = 1 distribution set created
event.notifcation.distributionset.deleted = 1 distribution set deleted
event.notifcation.distributionsets.created = {0} distribution sets created
event.notifcation.distributionsets.deleted = {0} distribution sets deleted
event.notifcation.softwaremodule.created = 1 software module created
event.notifcation.softwaremodule.deleted = 1 software module deleted
event.notifcation.softwaremodules.created = {0} software modules created
event.notifcation.softwaremodules.deleted = {0} software modules deleted

# Captions prefix with - caption
caption.filter.by.type = Filter by type
caption.bulk.upload = Bulk Upload
caption.action.history = Action history
caption.action.history.for = Action history for
caption.artifact.details = Artifact Details
caption.artifact.details.of = Artifact Details of
caption.action.states= Action States
caption.action.messages = Messages
caption.error = Error
caption.no.permission = Insufficient Permission
caption.entity.missing.error = Entity is missing
caption.quota.assignment.exceeded = Assignment quota exceeded
caption.new.softwaremodule.application = Configure New Application
caption.new.softwaremodule.os = Configure New OS
caption.filter.simple = Simple Filter
caption.filter.type = Type Filter
caption.filter.custom = Custom Filter
caption.metadata = Metadata
caption.rollout.name = Rollout name

caption.target = Target
caption.target.filter = Target Filter
caption.distribution = Distribution
caption.tag = Tag
caption.type = Type
caption.software.module = Software Module
caption.rollout = Rollout

caption.create.new = Create new {0}
caption.update = Edit {0}
caption.copy = Copy {0}
caption.approve = Approve {0}

caption.select.auto.assign.dist = Select auto assignment distribution set
caption.bulk.upload.targets = Bulk Upload
caption.softwares.distdetail.tab = Modules
caption.tags.tab = Tags
caption.logs.tab = Logs
caption.tab.confirmation = Auto-Confirmation
caption.attributes.tab = Attributes
caption.types.tab = Types
caption.save.window = Action Details
caption.assign.dist.accordion.tab = Assign Software Module
caption.delete.dist.accordion.tab = Delete Distributions
caption.delete.target.accordion.tab = Delete Targets
caption.delete.swmodule.accordion.tab = Delete SW Modules
caption.delete.dist.set.type.accordion.tab = Delete Distribution set type
caption.delete.sw.module.type.accordion.tab = Delete Software module type
caption.panel.dist.installed = Installed Distribution set
caption.panel.dist.assigned = Assigned Distribution set
caption.cancel.action.confirmbox = Confirm Action Cancellation
caption.forcequit.action.confirmbox = Confirm force quit action
caption.forced.datefield = Force update at time
caption.force.action.confirmbox = Confirm Force Active Action
caption.confirm.abort.action = Confirm Abort Action

caption.config.create = create
caption.config.edit = edit
caption.config.delete = delete

caption.metadata.popup = Metadata of
caption.invalidate.distributionset.consequences.singular = Invalidate distribution set - {0}
caption.invalidate.distributionset.consequences.plural = Invalidate {0} distribution sets
caption.invalidate.distributionset.affected.entities = Invalidation confirmation
caption.confirm.assign.consequences = Auto assign consequences
caption.auto.assignment.ds = Auto assignment

caption.target.auto.confirmation.activate.prefix = Activate automatic confirmations for
caption.target.auto.confirmation.activate.initiator = Initiator
prompt.target.auto.confirmation.activate.initiator = (Optional) Initiator
caption.target.auto.confirmation.activate.remark = Remark
prompt.target.auto.confirmation.activate.remark = (Optional) Remark
caption.target.auto.confirmation.disable = Disable automatic confirmations
message.target.auto.confirmation.disable = Do you want to disable automatic confirmations? \n\nThis will not have an effect on current active actions. \nFor all new assignments, the confirmation by the device will be required, before proceeding with the deployment.

caption.target.auto.confirmation.activate.consequences.caption = Active actions affected
caption.target.auto.confirmation.activate.consequences.question = Currently, the confirmation is pending for {0} active action(s). \nSaving will confirm and put them to the 'RUNNING' state.

caption.maintenancewindow.enabled = Use maintenance window
caption.maintenancewindow.schedule = Schedule
caption.maintenancewindow.duration = Duration
caption.maintenancewindow.timezone = Time Zone (from GMT)

caption.clear.file.upload.queue = Clear file upload queue

# Labels prefix with - label
label.create.filter = Create Filter
label.edit.filter = Edit Filter
label.sign.out = Sign Out
label.menu = Menu
label.active = Active
label.action.id = Action Id
label.no.tag = NO TAG
label.no.target.type = NO TARGET TYPE
label.action.forced = Forced
label.action.type = Type
label.action.soft = Soft
label.action.downloadonly = Download Only
label.action.time.forced = Time Forced
label.action.confirmation.required = Confirmation required
label.target.auto.confirmation.active = Confirmation automatically given
label.target.auto.confirmation.deactivated = Confirmation by device is required
label.target.auto.confirmation.state = State
label.target.auto.confirmation.initiator = Initiator
label.target.auto.confirmation.systemuser = System user
label.target.auto.confirmation.activatedat = Activated at
label.target.auto.confirmation.remark = Remark
button.target.auto.confirmation.activate = Activate auto-confirmation
button.target.auto.confirmation.disable = Disable auto-confirmation
label.name = Name
label.version = Version
label.vendor = Vendor
label.modified.date = Last modified at
label.modified.by = Last modified by
label.created.at = Created at
label.created.by = Created by
label.target.count = Targets
label.description = Description
label.ip = Address
label.type = Type
label.artifact.encryption = Artifact encryption
label.enabled = Enabled
label.disabled = Disabled
label.assigned.type = Assignment type
label.assigned.count = {0} Assigned 
label.installed.count = {0} Installed
label.mandatory.field = * Mandatory Field
label.components.drop.area = Drop here to delete
label.software.module.drop.area = Delete Software
label.create.tag = Create Tag
label.update.tag = Edit Tag
label.create.type = Create Type
label.update.type = Edit Type
label.singleAssign.type = Firmware (FW)
label.multiAssign.type = Software (SW)
label.singleAssign.type.desc = Allows only one module per distribution set
label.multiAssign.type.desc = Allows multiple modules per distribution set
label.choose.type.color = Type Color
label.choose.tag.color = Tag Color
label.target.filtered.total = Total Filtered Targets
label.filter = Filter: 
label.target.filter.count = Total Targets
label.filter.selected = Selected: 
label.filter.shown = Shown: 
label.filter.targets = Filtered Targets: 
label.filter.status = Status
label.filter.overdue = Overdue
label.filter.tags = Tags
label.filter.text = Search Text
label.filter.dist = Distribution
label.filter.custom = Custom
label.filter.target.type = Target Type
label.target.filter.truncated={0} targets has been truncated in the list due the target size limit of {1}, use filters to reduce the targets to be shown
label.unknown = Unknown
label.target.id = Controller Id
label.target.type = Target type
label.target.ip = Controller IP
label.target.security.token = Security token
label.filter.by.status = Filter by Status
label.filter.by.overdue = Filter by Overdue
label.target.attributes.update.pending = Update pending..
label.target.lastpolldate = Last poll
label.tag.name = Tag name
label.configuration.auth.header = Allow targets to authenticate via a certificate authenticated by a reverse proxy
label.configuration.auth.hashField = SSL Issuer Hash
label.configuration.auth.hashField.tooltip = The SSL Issuer iRules.X509 hash, to validate against the controller request certificate.
label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and manage multiple targets through a gateway security token
label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token
label.configuration.repository.autoclose.action = Autoclose running actions when a new distribution set is assigned
label.configuration.repository.autocleanup.action = Automatically delete terminated actions
label.configuration.repository.autocleanup.action.prefix = Delete actions with status
label.configuration.repository.autocleanup.action.body = after
label.configuration.repository.autocleanup.action.suffix = day(s)
label.configuration.repository.autocleanup.action.expiry.invalid = The specified number of days is invalid. Please enter a positive integer value between 1 and 1000.
label.configuration.anonymous.download = Allow targets to download artifacts without security credentials
label.configuration.repository.autocleanup.action.notice = Warning: The actions are deleted from the repository and cannot be restored
label.configuration.repository.multiassignments = Allow parallel execution of multiple distribution set assignments and rollouts
label.configuration.repository.multiassignments.notice = Warning: Once this assignment behavior is active, it cannot be deactivated.
label.configuration.repository.confirmationflow = Request confirmation for actions before proceeding with download/install process.
label.unsupported.browser.ie = Sorry! Your current browser is not supported. Please use Internet Explorer 11 and above
label.auto.assign.description = When an auto assign distribution set is selected, it will be automatically assigned to all targets that match the target filter.
label.auto.assign.enable = Enable auto assignment
label.auto.assign.confirmation.required = Confirmation required
label.approval.decision = Approval decision
label.approval.remark = Remark (optional)
label.drop.area.upload = Drop Files to upload
label.errorthreshold.option.percent = %
label.errorthreshold.option.count = Count
label.invalidate.distributionset.stop.rollouts = Stop rollouts
label.invalidate.ds.cancelation.type = Type of cancelation:
label.cancel.action.none = None
label.cancel.action.force = Forced
label.cancel.action.soft = Soft
label.calculating = Calculating...

# TextFields prefix with - textfield
textfield.name = Name
textfield.query = Query
textfield.key = Key
textfield.version = Version
textfield.vendor = Vendor
textfield.description = Description
textfield.customfiltername = Filter name
textfield.value = Value
prompt.target.id = Controller ID


#Tooltips prefix with - tooltip
tooltip.delete.custom.filter = Delete Custom Filter
tooltip.update.custom.filter = Edit Custom Filter
tooltip.add.module = Add Software Module 
tooltip.status.unknown = Unknown
tooltip.status.registered = Registered
tooltip.status.pending = Pending
tooltip.status.error = Error
tooltip.status.insync = In-sync
tooltip.status.overdue = Overdue
tooltip.delete.module = Select and delete Software Module
tooltip.forced.item=Device is supposed to install the update immediately
tooltip.soft.item=Device can execute the update at any time, e.g. with user approval or according to its regular update time plan
tooltip.downloadonly.item=Device is supposed to only download the update and not install it
tooltip.timeforced.item=Soft update which turns into a forced update after a specific time
tooltip.timeforced.forced.in=Auto forcing in {0}
tooltip.timeforced.forced.since=Auto forced since {0}
tooltip.check.for.mandatory=Check to make Mandatory
tooltip.artifact.icon=Show Artifact Details
tooltip.click.to.edit = Click to edit
tooltip.click.to.remove = Click to remove
tooltip.click.to.filter = Click to filter
tooltip.metadata.icon = Manage Metadata..
tooltip.next.maintenance.window = next on {0}
tooltip.target.attributes.update.request = Request attributes update
tooltip.target.attributes.update.requested = Update already requested
tooltip.documentation.link=Documentation
tooltip.artifact.download=Download Artifact

#action status
tooltip.action.status.finished=Finished
tooltip.action.status.error=Error
tooltip.action.status.warning=Warning
tooltip.action.status.running=Running
tooltip.action.status.canceled=Cancelled
tooltip.action.status.canceling=Canceling
tooltip.action.status.cancel_rejected=Cancel Rejected
tooltip.action.status.retrieved=Retrieved
tooltip.action.status.download=Downloading
tooltip.action.status.downloaded=Downloaded
tooltip.action.status.scheduled=Scheduled
tooltip.action.status.wait_for_confirmation=Confirmation pending

#action active status
tooltip.active.action.status.active=Active
tooltip.active.action.status.scheduled=Scheduled
tooltip.active.action.status.inactive=In-active
tooltip.active.action.status.inactiveerror=In-active Error

#rollout action
tooltip.rollout.run = Run
tooltip.rollout.approve = Approve
tooltip.rollout.pause = Pause
tooltip.rollout.triggernextgroup = Trigger next group
tooltip.rollout.update = Edit..
tooltip.rollout.copy = Copy..
tooltip.delete = Delete..
tooltip.overdue = Overdue for {0}

#rollout status
tooltip.rollout.status.creating=Creating
tooltip.rollout.status.waiting_for_approval=Waiting for approval
tooltip.rollout.status.approval_denied=Approval denied
tooltip.rollout.status.ready=Ready
tooltip.rollout.status.paused=Paused
tooltip.rollout.status.starting=Starting
tooltip.rollout.status.stopped=Stopped
tooltip.rollout.status.running=Running
tooltip.rollout.status.finished=Finished
tooltip.rollout.status.deleting=Deleting
tooltip.rollout.status.deleted=Deleted

#rollout group status
tooltip.rollout.group.status.finished=Finished
tooltip.rollout.group.status.scheduled=Scheduled
tooltip.rollout.group.status.running=Running
tooltip.rollout.group.status.ready=Ready
tooltip.rollout.group.status.error=Error

#rollout target status
tooltip.rollout.target.status.finished=Finished
tooltip.rollout.target.status.scheduled=Scheduled
tooltip.rollout.target.status.running=Running
tooltip.rollout.target.status.cancelled=Cancelled
tooltip.rollout.target.status.error=Error
tooltip.rollout.target.status.notstarted=Not Started

tooltip.close = Close
tooltip.search = Search
tooltip.save = Save
tooltip.add = Create..
tooltip.maximize = Maximize
tooltip.minimize = Minimize
tooltip.bulkUpload = Bulk Upload..
tooltip.showTags = Show Tags
tooltip.assignTag = Assign Tag
tooltip.selectTag = Select Tag
tooltip.update = Edit..
tooltip.reset = Reset
tooltip.configure = Configure..
tooltip.configure.close = Cancel configure

tooltip.target.status.unknown = Status unknown
tooltip.target.status.error = Status error
tooltip.target.status.in_sync = Status In Sync
tooltip.target.status.pending = Status pending
tooltip.target.status.registered = Status registered
tooltip.target.pin = Pin target
tooltip.distribution.set.pin = Pin distribution set
tooltip.invalidate.distributionset = Invalidate distribution set..
tooltip.distributionset.invalid = invalid
tooltip.distributionset.incomplete = incomplete
tooltip.distributionset.invalidate.forced = Open actions will be canceled and force quit
tooltip.distributionset.invalidate.soft = Open actions will be canceled
tooltip.distributionset.invalidate.none = Open actions will not be canceled
tooltip.in.time = In Time
tooltip.target.filter.confirmation.required = Confirmation required
tooltip.target.filter.confirmation.not.required = Confirmation not required
tooltip.target.filter.confirmation.not.configured = Not configured

# Notification messages prefix with - message
message.save.success = {0} saved successfully
message.save.fail = {0} could not be saved, possibly due to invalid user input
message.update.success = {0} updated successfully
message.delete.success = {0} {1} deleted successfully
message.delete.fail = {0} {1} deletion failed
message.dist.pending.action = Target {0} is already assigned with distribution  {1} . Pending for action
message.empty.target.tags= No Tags Created
message.empty.disttype.tags = No Distribution type tags created
message.select.row = Please select a row to drag
message.error = Unknown error occurred during the operation. Please contact administrator
message.assigned.one = {0} {1} is assigned to {2} {3}
message.assigned.many = {0} {1}s are assigned to {2} {3}
message.unassigned.one = {0} {1} is unassigned from {2} {3}
message.unassigned.many = {0} {1}s are unassigned from {2} {3}
message.alreadyAssigned = {0} {1}s are already assigned to {2} {3}
message.cannot.delete = Cannot be deleted
message.check.softwaremodule = Please provide both name and version!
message.duplicate.softwaremodule = {0} : {1} already exists!
message.tag.delete = Please deselect the tag {0} before deleting
message.targettype.delete = Please deselect the target type {0} before deleting
message.dist.type.check.delete = Please deselect the distribution type {0} before deleting
message.cannot.delete.default.dstype = Default distribution set type cannot be deleted
message.swmodule.type.check.delete = Please deselect the Software Module type {0} before deleting
message.targets.already.deleted = Few Target(s) are already deleted. Pending for action
message.dists.already.deleted = Few distribution(s) are already deleted.Pending for action
message.target.deleted.pending = Target(s) already deleted.Pending for action
message.dist.deleted.pending = Distribution(s) already deleted.Pending for action
message.dist.delete.success = All selected distribution sets are deleted successfully !
message.target.delete.success = All selected targets are deleted successfully !
message.target.discard.success =  All targets selected for delete are discarded successfully !
message.software.discard.success = All software modules selected for delete are discarded successfully !
message.software.type.discard.success = All software moduleTypes selected for delete are discarded successfully !
message.assign.software.discard.success = All software moduleTypes selected for assign are discarded successfully !
message.software.delete.success =  All software modules selected for delete are deleted successfully !
message.software.type.delete.success =  All software modules types selected for delete are deleted successfully !
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully ! 
message.new.dist.save.success = {0} - {1} saved successfully
message.dist.update.success = {0} - {1} updated successfully
message.duplicate.dist = Distribution set [{0}] or version [{1}] must be unique, entered value already exists.
message.error.view = No such view: {0}
message.accessdenied = Access denied
message.accessdenied.view = No access to view: {0}
message.no.data = No Data
message.data.available = Data available
message.target.assignment = {0} Assignment(s) done
message.target.deleted = {0}  Target(s) deleted 
message.dist.deleted = {0} Distribution set(s) deleted
message.tag.update.mandatory = Please select the Tag to update
message.type.duplicate.check = Type with name {0} already exists, please enter another value
message.tag.duplicate.check = Tag with name {0} already exists, please enter another value
message.type.key.ds.duplicate.check = Distribution set type with key {0} already exists, please give another value
message.type.update.mandatory = Please select the Distribution set type to update
message.type.key.swmodule.duplicate.check = Software Module type with key {0} already exists, please give another value
message.type.key.empty = You must provide type key
message.no.action.history = No action history is available for the target: {0}
message.no.available = --No messages available--
message.no.actionupdateds.available = No other updates available for this action
message.mandatory.check = Mandatory details are missing
message.target.duplicate.check = Target [ {0} ] must be unique, entered value already exists.
message.target.whitespace.check = Please enter a valid controller ID with no whitespaces
message.permission.insufficient = Missing permissions to perform this action: {0}
message.dists.tag.assigned = {0} DistributionSet's assigned to Tag {1}
message.dists.tag.unassigned = {0} DistributionSet's un-assigned from Tag {1}
message.dist.no.operation = {0} - already assigned/installed, No operation
message.error.softmodule.deleted = The selected Software Module is already deleted
message.cancel.action = Cancel..
message.cancel.action.success = Action cancelled successfully !
message.cancel.action.failed = Unable to cancel the action ! 
message.cancel.action.confirm = Are you sure you want to cancel this action?
message.target.alreadyAssigned = {0} Target(s) were already assigned
message.force.action = Force
message.force.action.confirm = Are you sure you want to force this action?
message.force.action.success = Action forced successfully !
message.force.action.failed = Unable to force the action !
message.forcequit.action = Force Quit..
message.forcequit.action.success = Action has been force quit successfully !
message.forcequit.action.failed = Force Quitting the action is not possible ! 
message.forcequit.action.confirm = Attention!\nForce quit should only be used when the assignment action is not working properly.\nForce quitting an action has no effect on the connected target. It is just resetting \nthe data stored on the SP update server. \nAre you absolutely sure you want to force quit this action? 
message.downloadonly.action = DownloadOnly
message.distribution.no.update = distribution {0} set is already assigned to targets and cannot be changed
message.action.not.allowed = Action not allowed
message.action.did.not.work = Action did not work. Please try again.
message.onlyone.distribution.assigned  = Only one distribution set can be assigned
message.onlyone.distribution.dropallowed = Only one distribution set can be dropped
message.error.missing.typenameorkeyorsmtype = Missing Type Name or Key or Software Module type
message.tag.cannot.be.assigned =  Target/DS cannot be assigned to {0}
message.no.targets.assiged.fortag =  No targets are assigned to tag {0}
message.error.missing.tagname = Please select tag name
message.error.missing.filtername = Please select target filter name
message.error.missing.controllerId = Missing Controller Id
message.error.missing.nameorversion = Missing Name or Version
message.error.missing.nameorversionortype = Missing Name or Version or Type
message.error.missing.typename = Please select target type name
message.error.distributionset.invalid = Action not allowed for invalid distribution set {0}
message.type.delete = Please unclick the type {0}, then try to delete
message.error.dist.set.type.update= Distribution set type is already assigned to set(s) and cannot be changed
message.no.directory.upload = Directory upload is not supported
message.drop.onlyFiles = Please drop files only
message.delete.filter.confirm = Are you sure you want to delete custom filter?
message.delete.filter.success = Custom filter {0} deleted Successfully!
message.create.filter.success = Custom filter {0} created Successfully!
message.update.filter.success = Custom filter updated Successfully!
message.filter.query.error.notValide = Target filter query is not valid
message.target.filter.validation = Please enter name and query
message.target.filter.duplicate =  Target Filter {0} already exists, please enter another value
message.bulk.upload.upload.started = Uploading a file..
message.bulk.upload.provisioning.started = Provisioning targets..
message.bulk.upload.assignment.started = Assigning tags and DS..
message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists 
message.bulk.upload.tag.assignments.failed= Few tag assignments failed as tags no longer exists  
message.confirm.assign.consequences.none = This auto assignment will not have any effect on the currently available targets. In future added targets might match the filter and will receive the selected distribution set automatically.
message.confirm.assign.consequences.text = When you confirm this auto assignment, {0} targets which match the filter will immediately get assigned with the selected distribution set.
message.confirm.assign.consequences.confirmation.hint = Hint:\nConfirmation is not required for all future assignments.\nAssignments will be marked as confirmed by "{0}".
message.maintenancewindow.schedule.required.error=Please provide a Cron expression
message.maintenancewindow.schedule.validation.error = Please enter a valid Cron expression
message.maintenancewindow.duration.required.error = Please provide a duration
message.maintenancewindow.duration.validation.error = Please enter the duration in the format hh:mm:ss, error is at {0} position
message.autoassign.create.error.missingElements = Missing assignment type or distribution set
message.error.nameRequired = Please provide a name
message.error.versionRequired = Please provide a version
message.error.distributionSetRequired = Please provide a distribution set
message.error.tfqRequired = Please provide a target filter
message.error.typeRequired = You must provide the software module type
message.error.noSmTypeSelected = You must select a software module type
message.entity.error.deleted = Entity does no exist. It might have been deleted by an other user.
message.entity.error.readonly = You are not allowed to modify this entity.
message.error.deleteMetaData = No {0} is currently selected or metadata to delete is missing
message.deleted.or.notAllowed = {0} with name {0} was deleted or you are not allowed to update it
message.key.deleted.or.notAllowed = {0} with key {0} was deleted or you are not allowed to update it
message.forcedTime.cannotBeEmpty = Forced time can not be empty
message.forcedTime.missing = Force time is not specified for the time-forced assignment
message.scheduledTime.cannotBeEmpty = Scheduled time can not be empty
message.clear.file.upload.queue.confirm = There is still at least one queued file upload pending. By leaving this view the upload queue will be cleared. \nAre you sure you want to leave this view?
message.invalidate.distributionset.success.singular = Distribution set {0} invalidated successfully
message.invalidate.distributionset.success.plural = {0} distribution sets invalidated successfully
message.invalidate.distributionset.fail.singular = Distribution set {0} invalidation failed
message.invalidate.distributionset.fail.plural = Invalidation failed for {0} distribution sets
message.invalidate.distributionset.consequences.singular = By invalidating this distribution set it can no longer be used in any assignment. All active auto assignments and optionally all active rollouts of the distribution set can be stopped as well as all existing update actions will be canceled. A summary of affected entities will be shown on the next page.
message.invalidate.distributionset.consequences.plural = By invalidating this {0} distribution sets they can no longer be used in any assignment. All active auto assignments and optionally all active rollouts of the distribution sets can be stopped as well as all existing update actions will be canceled. A summary of affected entities will be shown on the next page.
message.invalidate.distributionset.unrepeatable.hint = Note: If no cancelation type is selected, mass-cancel of actions will not be possible at a later point in time.
message.invalidate.distributionset.affected.entities.intro.singular = When you confirm the invalidation of distribution set {0} the following actions will be taken:
message.invalidate.distributionset.affected.entities.intro.plural = When you confirm the invalidation of {0} distribution sets the following actions will be taken:
message.invalidate.distributionset.affected.entities.actions = {0} action(s) will be canceled
message.invalidate.distributionset.affected.entities.rollouts = {0} rollout(s) will be stopped
message.invalidate.distributionset.affected.entities.autoassignments = {0} auto assignment(s) will be stopped
message.target.type.incompatible = Target(s) of type(s) {0} not compatible with distribution set type(s) {1}

# action info
action.target.table.selectall = Select all (Ctrl+A)
action.target.table.clear = Clear selections
action.grid.selection.limit = Selection is limited to {0} entities

#reused messages
soft.module.jvm =Runtime
soft.module.application =Application
soft.module.os =OS

#Artifact upload
message.error.noSwModuleSelected = Please select a Software Module
message.error.multiSwModuleSelected = Please select only one Software Module
message.no.duplicateFiles = Duplicate files selected  
message.delete.artifact = Are you sure you want to delete artifact {0} ?
message.swModule.deleted = {0} Software Module(s) deleted
message.error.swModule.notDeleted = Upload is running for Software Module(s)
message.upload.failed = Upload failed
message.upload.failed.with.reason = Upload failed due to {0}
message.upload.assignmentQuota = Max assignments per software module exceeded
message.upload.fileSizeQuota = Maximum artifact size ({0}) exceeded
message.upload.storageQuota = Storage quota exceeded, {0} left
message.uploadedfile.illegalFilename = Filename contains illegal characters
message.artifact.deleted = Artifact with file {0} deleted successfully
message.artifact.download.failure = Artifact Download Failed
message.encryption.unsupported = Artifact encryption not supported
message.encryption.secrets.failed = Artifact encryption secrets generation failed
message.encryption.failed = Artifact encryption failed
message.decryption.failed = Artifact decryption failed
message.count.failed = There was an error during count calculation, please contact administrator

artifact.upload.popup.caption = Upload status
artifact.upload.status.caption = Status
artifact.upload.progress.caption = Progress
artifact.upload.reason.caption = Reason
artifact.filename.caption = File name
artifact.filesize.bytes.caption = Size(B)
artifact.encryption = Enable artifact encryption

tooltip.upload.status.inprogress = In progress
tooltip.upload.status.finished = Finished
tooltip.upload.status.failed = Failed

upload.swModuleTable.header = Software Module
upload.selectedfile.name  = file selected for upload 
upload.file.name = File name
upload.sha1 = SHA1 checksum
upload.md5 = MD5 checksum
upload.sha256 = SHA256 checksum
upload.last.modified.date=Last modified date
upload.failed = Failed
upload.success = Success
upload.validation = Validation
upload.action = Action
upload.result.status = Upload status
upload.file = Upload File
caption.tab.details = Details
caption.tab.description = Description

caption.delete.artifact.confirmbox = Confirm Artifact Delete Action

custom.filter.name = Filter Name
custom.filter.created.by = Created By
custom.created.date = Created Date

#Manage distributions view
label.dist.required.migration.step = Required Migration Step
label.no.tag.assigned = NO TAG
caption.assign.software.dist.accordion.tab = Assign Software Modules
message.software.assignment = {0} Software Module Assignment(s) done
message.dist.inuse = Distribution {0} is already assigned to target
message.software.dist.already.assigned = Software Module {0} is already assigned to Distribution {1}
message.software.dist.type.notallowed = Software Module {0} cannot be assigned, because Distribution {1} does not support the Software Module Type {2}
message.software.already.dragged = Software Module {0} was already dragged to this Distribution.
message.target.assigned =  {0} is assigned to {1}
message.dist.type.delete = Distribution Type deleted successfully.
message.sw.module.type.delete = Software Module Type deleted successfully.
message.dist.type.discard.success = All Distribution Types are discarded successfully !
message.dist.discard.success = All Distributions are discarded successfully !
message.dist.type.notfound = Distribution set type for {0} was not found
message.assign.discard.success = All assignments are discarded successfully !
message.target.ds.assign.success = Assignment saved successfully !
message.target.ds.multiassign.error = Cannot assign multiple distribution sets to a target!
message.target.targetype.assign.error = One or more targets are already assigned to a target type
message.bulk.upload.assignment.failed = Distribution set assignment failed as distribution set no longer exists!
message.bulk.upload.result.success = Successful: {0}
message.bulk.upload.result.fail = Failed: {0}
message.key.missing = Key is missing !
message.value.missing = Value is missing !
message.metadata.key.required = You must provide metadata key
message.metadata.value.required = You must provide metadata value
message.metadata.saved = Metadata with key {0} successfully saved !
message.metadata.updated = Metadata with key {0} successfully updated !
message.metadata.duplicate.check = Metadata with key {0} already exists, please enter another value
message.metadata.deleted.successfully = Metadata with key {0} successfully deleted !
message.confirm.delete.metadata = Are you sure you want to delete metadata with key {0} ?
message.error.notification.ds.target.assigned = Distribution set {0}:{1} is already assigned to targets and cannot be changed

# Login view
notification.login.title=Welcome to Bosch IoT Software Provisioning.
notification.login.description=Please login with your Bosch Identity Management credentials.
notification.login.failed.title=Login failed!
notification.login.failed.description=Login with the given credentials failed.
notification.login.failed.credentialsexpired.title=Password Expired!
notification.login.failed.credentialsexpired.description=Password has been expired or needs to be set initially, please visit the User Management to change or set your password.
label.login.tenant=Tenant
label.login.username=Username
label.login.password=Password
label.login.disclaimer=Privacy Notice
button.login.signin=Sign in
button.login.agreeandsignin=Agree & Sign in

# Links
link.documentation.name=Documentation
link.demo.name=Demo
link.requestaccount.name=Request Account
link.support.name=Support
link.usermanagement.name=User Management

# System Configuration View
notification.configuration.save.successful=Saved changes
notification.configuration.save.notpossible = Saving was not possible, because of invalid user input.
configuration.defaultdistributionset.title=Distribution Configuration
configuration.defaultdistributionset.select.label=Select the default distribution set type:
configuration.savebutton.tooltip=Save Configurations
configuration.cancellbutton.tooltip=Cancel Configurations
configuration.button.regenerateKey = Regenerate Key
configuration.authentication.title=Authentication Configuration
configuration.repository.title=Repository Configuration
configuration.polling.title=Polling Configuration
configuration.polling.time=Polling Time
configuration.polling.overduetime=Polling Overdue Time
configuration.polling.custom.value=use a custom value
configuration.datetime.format.invalid = Input is not in hh:mm:ss/hhmmss format
configuration.rollout.title=Rollout Configuration
configuration.rollout.approval.label=Approve rollout before it can be started

#Calendar
calendar.year=year
calendar.years=years
calendar.month=month
calendar.months=months
calendar.day=day
calendar.days=days
calendar.hour=hour
calendar.hours=hours
calendar.minute=minute
calendar.minutes=minutes
calendar.second=second
calendar.seconds=seconds

header.name = Name
header.controllerId = Controller ID
header.vendor = Vendor
header.version = Version
header.description = Description
header.type = Type
header.createdBy = Created By
header.createdDate = Created Date
header.modifiedBy = Modified By
header.modifiedDate = Modified Date
header.maintenancewindow = Maintenance Window
header.assigned.ds = Assigned DS
header.installed.ds = Installed DS
header.target.status = Status
header.target.tags = Tags
header.total.targets = Targets 
header.key = Key
header.value = Value
metadata.targetvisible = Visible for targets
header.auto.assignment.ds = Auto assignment
header.target.filter.name = Target filter name
header.target.filter.query = Target filter query
header.approvalDecidedBy = Decided By
header.approvalRemark = Approval Remark

distribution.details.header = Distribution set
target.details.header = Target
artifact.details.header = Artifact
header.caption.mandatory = Mandatory
header.caption.typename = SoftwareModuleType
header.caption.softwaremodule = SoftwareModule
message.sw.unassigned = Software Module {0} successfully unassigned
header.caption.upload.details = Upload details

label.yes = Yes
label.no = No

#rollout - start
header.distributionset = Distribution set
header.numberofgroups = Groups
header.detail.status = Detail status

header.rolloutgroup.installed.percentage = Finished
header.rolloutgroup.threshold.error = Error threshold
header.rolloutgroup.confirmation = Confirmation
header.rolloutgroup.threshold = Trigger threshold
header.rolloutgroup.target.date = Date and time
header.rolloutgroup.target.message = Messages
rollout.group.label.target.truncated = {0} targets has been truncated in the list due the target size limit of {1}


prompt.groups = Groups
prompt.number.of.groups = Number of groups
prompt.trigger.threshold = Trigger threshold
prompt.trigger.threshold.required = Trigger threshold is required
prompt.error.threshold = Error threshold
prompt.error.threshold.required = Error threshold is required
prompt.confirmation.required = Confirmation required
prompt.distribution.set = Distribution set
button.rollout.groups.def.button = Define groups
button.rollout.add.group = Add Group
caption.configure.rollout = Configure Rollout
caption.configure.rollout.groups = Configure Deployment Groups
prompt.target.filter = Custom Target Filter
message.rollout.nonzero.group.number = Number of groups must be greater than zero
message.max.group.number = Number of groups must not be greater than 500
message.rollout.target.unassigned = Unassigned
message.rollout.duplicate.check = Rollout [ {0} ] must be unique, entered value already exists.
message.rollout.name.empty = Please enter a name for Rollout
message.correct.invalid.value = Please correct invalid values
message.enter.number = Please enter number
message.field.validator.numeric.invalid.input = Value {0} should be in a numeric format
message.rollout.field.value.range = Value should be in range {0} to {1}
message.rollout.filter.target.exists = The selected target filter does not match any existing target
message.rollout.max.group.size.exceeded = The maximum group size of {0} targets is exceeded. Please increase the number of groups or select a different target filter 
message.rollout.max.group.size.exceeded.advanced = The maximum size of {0} targets is exceeded for this group. Please re-distribute the targets across the groups and create further groups if needed
message.rollout.approval.required = You should approve or reject the Rollout
message.rollout.started = Rollout {0} started successfully
message.rollout.paused = Rollout {0} paused successfully
message.rollout.trigger.next.group.not.running = Rollout is not in RUNNING state
message.rollout.trigger.next.group.success = Next group successfully triggered
message.rollout.trigger.next.group.error = Could not trigger next group
message.rollout.resumed = Rollout {0} resumed successfully
message.rollout.deleted = Rollout {0} deleted successfully
message.rollout.noofgroups.or.targetfilter.missing = Please enter number of groups and select target filter
message.rollouts = Rollouts
label.target.per.group = Targets per group:
message.dist.already.assigned = Distribution {0} is already assigned to target
message.dist.not.assigned = Distribution {0} was not assigned to target
message.error.creating.rollout = Server error. Error creating Rollout. Please contact the administrator
message.error.starting.rollout = Server error. Error starting Rollout. Please contact the administrator

message.delete.rollout = You are about to delete the rollout "{0}".\n{1}Are you sure?
message.delete.rollout.details = There are {0} running updates that will continue and {1} scheduled updates that will terminate.\n

caption.rollout.group.definition.desc = Define which groups the Rollout should have.
header.target.percentage = Target percentage
textfield.target.percentage = Target percentage
textfield.target.percentage.required = Target percentage is required
textfield.target.percentage.format.error = Target percentage format is wrong
textfield.rollout.group.default.name = Group {0}
message.rollout.group.name.invalid = Enter a group name with a length between 1 and 64
caption.rollout.tabs.simple = Number of Groups
caption.rollout.tabs.advanced = Advanced Group definition
caption.rollout.generate.groups = Generate the groups automatically with the specified thresholds.
caption.rollout.action.type = Action type
message.rollout.remaining.targets.error = Not all targets are addressed
textfield.rollout.copied.name = Copy of {0}
label.rollout.targets.in.group = {0} in {1}
caption.rollout.start.type = Start type
caption.rollout.start.manual = Manual
caption.rollout.start.manual.desc = The user starts the rollout manually.
caption.rollout.start.auto = Auto
caption.rollout.start.auto.desc = The rollout is started as soon as it is created.
caption.rollout.start.scheduled = Scheduled
caption.rollout.start.scheduled.desc = The rollout starts as soon as it is ready and the set time has passed.
label.rollout.calculating = Calculating groups ...

caption.rollout.confirm.trigger.next = Trigger next rollout group
message.rollout.confirm.trigger.next = You are about to trigger the next rollout group.\nAre you sure?

#rollout - end

#Menu
menu.user.description = Tenant: {0} User: {1} 

#Target Filter Management
breadcrumb.target.filter.custom.filters = Custom Filters

notification.configuration.save=Saved changes
controller.polling.title=Polling Configuration
controller.polling.time=Polling Time

# entity not exist
rollout.not.exists=Rollout {0} does not exist. Maybe the it was deleted.
rollout.group.not.exists=Rollout Group {0} does not exist. Maybe the it was deleted.
color.not.exists=There is no mapping for the provided colour {0}

caption.entity.target.tag = Target Tag
caption.entity.target.tags = Target Tags
caption.entity.target.type = Target Type
caption.entity.target.types = Target Types
caption.entity.distribution.tag = Distribution Tag
caption.entity.distribution.tags = Distribution Tags
caption.entity.distribution.type = Distribution set Type
caption.entity.distribution.types = Distribution set Types
caption.entity.software.module.type = Software Module Type
caption.entity.software.module.types = Software Module Types

validator.textfield.min.length = Please enter a text consisting of at least one and a maximum of {0} characters.

caption.entity.delete.action.confirmbox = Confirm Deletion
message.confirm.delete.entity = Are you sure you want to delete {0} {1}?
caption.entity.assign.action.confirmbox = Confirm Assignment
message.confirm.assign.multiple.entities.to.entity = Are you sure you want to assign {0} {1} to {2} {3}?
caption.distributionsets = Distribution sets
caption.softwaremodules = Software Modules
caption.targets = Targets
caption.artifacts = Artifacts
caption.metadata.plur = Metadata
caption.rollouts = Rollouts
caption.filter.custom.plur = Custom Filters

# character descriptions
character.whitespace = whitespace
character.digits = digits
character.quotationMarks = quotation marks
character.slashes = slashes

# Vaadin system messages
vaadin.system.sessionexpired.caption=Session Expired
vaadin.system.sessionexpired.message=Take note of any unsaved data, and click here or press ESC key to continue.
vaadin.system.communicationerror.caption=Communication problem
vaadin.system.communicationerror.message=Take note of any unsaved data, and click here or press ESC to continue.
vaadin.system.internalerror.caption=Internal error
vaadin.system.internalerror.message=Please notify the administrator. Take note of any unsaved data, and click here or press ESC to continue.
vaadin.system.tryingreconnect=Server connection lost, trying to reconnect...
